package com.account.domains;

import com.baomidou.mybatisplus.enums.IdType;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 交易表
 * </p>
 *
 * @author ganhuaicheng
 * @since 2017-09-19
 */
@TableName("account_trade")
public class AccountTrade implements Serializable {

    private static final long serialVersionUID = 1L;

	/**
	 * 自增id
	 */
	@TableId(type = IdType.AUTO)
	private Long id;

	/**
	 * 交易号
	 */
	private String dealsn;

	/**
	 * 交易类型　1:代扣 2:划拨
	 */
	@TableField(value="deal_type")
	private Integer dealType;

	/**
	 * 三方id（0:内部交易 1：连连）
	 */
	@TableField(value="third_num")
	private Integer thirdNum;

	/**
	 * 出帐帐户类型　0:银行卡　1:内部虚拟帐户1 2:内部虚拟帐户 3:内部虚拟帐户
	 */
	@TableField(value="out_account_type")
	private Integer outAccountType;

	/**
	 * 银行卡id(只允许是本人银行卡) 或 用户id
	 */
	@TableField(value="out_account_id")
	private Long outAccountId;

	/**
	 * 出帐帐户类型　0:银行卡 1:内部虚拟帐户1 2:内部虚拟帐户 3:内部虚拟帐户
	 */
	@TableField(value="in_account_type")
	private Integer inAccountType;

	/**
	 * 银行卡id(只允许是本人银行卡) 或 用户id
	 */
	@TableField(value="in_account_id")
	private Long inAccountId;

	/**
	 * 金额(单位:分)
	 */
	@TableField(value="current_amount")
	private BigDecimal currentAmount;

	/**
	 * 备注
	 */
	private String remark;

	/**
	 * 执行状态  0:未执行 1:执行中 2:执行成功　3:执行失败
	 */
	@TableField(value="trade_status")
	private Integer tradeStatus;

	/**
	 * 通知状态  -1:无需通知　0:未通知 1:通知中 2:通知成功　3:通知失败
	 */
	@TableField(value="notify_status")
	private Integer notifyStatus;

	/**
	 * 逻辑删除标记  0：有效;1：删除
	 */
	@TableField(value="is_delete")
	private Integer isDelete;

	/**
	 * 创建时间
	 */
	@TableField(value="create_time")
	private Date createTime;

	/**
	 * 更新时间
	 */
	@TableField(value="update_time")
	private Date updateTime;



	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getDealsn() {
		return dealsn;
	}

	public void setDealsn(String dealsn) {
		this.dealsn = dealsn;
	}

	public Integer getDealType() {
		return dealType;
	}

	public void setDealType(Integer dealType) {
		this.dealType = dealType;
	}

	public Integer getThirdNum() {
		return thirdNum;
	}

	public void setThirdNum(Integer thirdNum) {
		this.thirdNum = thirdNum;
	}

	public Integer getOutAccountType() {
		return outAccountType;
	}

	public void setOutAccountType(Integer outAccountType) {
		this.outAccountType = outAccountType;
	}

	public Long getOutAccountId() {
		return outAccountId;
	}

	public void setOutAccountId(Long outAccountId) {
		this.outAccountId = outAccountId;
	}

	public Integer getInAccountType() {
		return inAccountType;
	}

	public void setInAccountType(Integer inAccountType) {
		this.inAccountType = inAccountType;
	}

	public Long getInAccountId() {
		return inAccountId;
	}

	public void setInAccountId(Long inAccountId) {
		this.inAccountId = inAccountId;
	}

	public BigDecimal getCurrentAmount() {
		return currentAmount;
	}

	public void setCurrentAmount(BigDecimal currentAmount) {
		this.currentAmount = currentAmount;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public Integer getTradeStatus() {
		return tradeStatus;
	}

	public void setTradeStatus(Integer tradeStatus) {
		this.tradeStatus = tradeStatus;
	}

	public Integer getNotifyStatus() {
		return notifyStatus;
	}

	public void setNotifyStatus(Integer notifyStatus) {
		this.notifyStatus = notifyStatus;
	}

	public Integer getIsDelete() {
		return isDelete;
	}

	public void setIsDelete(Integer isDelete) {
		this.isDelete = isDelete;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

}
